﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CoffeeTeaTrading.Core.Infrastructure.Utils;

namespace CoffeeTeaTrading.Repository.Models
{
    public partial class Order//:IValidatable
    {
        public static Order GetByPK(int id)
        {
            return DBContext.Instance.OrderSet.Where(pr => pr.Id == id).FirstOrDefault();
        }

        #region Implementation of IValidatable

        //public bool CheckBeforeSave()
        //{
        //    return GetRuleViolations().Count() == 0;
        //}

        //private bool IsUniqueName()
        //{
        //    return !DBContext.Instance.OrderSet.Any(pr => pr.Name == Name);
        //}

        //public bool CanBeDeleted()
        //{
        //    return DBContext.Instance.District.Where(district => district.Region.id == this.id)
        //               .Count() == 0;
        //}

        //public IEnumerable<IRuleViolation> GetRuleViolations()
        //{
        //    if (string.IsNullOrEmpty(Name))
        //    {
        //        yield return new RuleViolation("Название продукта не может быть пустым", this, "Name", Name);

        //    }
        //    else
        //    {
        //        if (Name != Name.Trim())
        //        {
        //            yield return
        //                new RuleViolation("Название продукта не может начинаться/заканчиваться пробельными символами",
        //                                  this, "Name", Name);
        //            yield break;
        //        }
        //        if (!IsUniqueName())
        //        {
        //            yield return new RuleViolation("Продукт с таким названием уже существует", this, "Name", Name);
        //        }
        //    }
        //    yield break;
        //}

        #endregion
}
